package pers.wchen.mybatis.generate.data.database;

import pers.wchen.mybatis.generate.data.database.AbsDatabaseFactory;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Map;

/**
 * @作者： wchen
 * @描述： mysql数据库 数据类型转换
 * @创建时间： 2018/2/9 14:21
 * @版本：Copyright 2018, Inc. All Rights Reserved.
 * @修改信息：
 */
public class MysqlFactory extends AbsDatabaseFactory {

    public MysqlFactory(String url, String driverName, String username, String password) {
        super(url, driverName, username, password);
    }
    /**
     *  @描述: java数据类型转换
     *  @参数： [type]
     *  @返回值： java.lang.String
     *  @创建人: wchen
     *  @创建时间: 2018/2/9
     *  @修改人和其它信息:
     */
    public String transJavaType(String type) {
        if(type.contains("char")) {
            return "String";
        }if(type.contains("varchar")) {
            return "String";
        }else if(type.equals("bigint")) {
            return "Long";
        }else if(type.contains("int")) {
            return "Integer";
        }else if(type.contains("number")) {
            return "Integer";
        }else if(type.contains("decimal")) {
            return "BigDecimal";
        }else if(type.contains("date")) {
            return "Date";
        }else if(type.contains("time")) {
            return "Date";
        }else {
            return "String";
        }
    }


    /**
     *  @描述:  jdbc类型转换
     *  @参数： [type]
     *  @返回值： java.lang.String
     *  @创建人: wchen
     *  @创建时间: 2018/2/9
     *  @修改人和其它信息:
     */
    public String transJdbcType(String type) {

        if(type.equals("char")) {
            return "CHAR";
        }else if(type.equals("varchar")) {
            return "VARCHAR";
        }else if(type.equals("int")) {
            return "INTEGER";
        }else if(type.equals("bigint")) {
            return "BIGINT";
        }else if(type.contains("number")) {
            return "INTEGER";
        }else if(type.contains("decimal")) {
            return "DECIMAL";
        }else if(type.contains("time")) {
            return "TIMESTAMP";
        }else if(type.contains("date")) {
            return "timestamp";
        }else {
            return "VARCHAR";
        }


    }
}
